package com.cnap.model.schedule;

import com.cnap.model.schedule.engine.EngineClusterInfo;
import com.cnap.model.schedule.engine.VmModel;
import com.cnap.model.validator.EnumCheck;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * 操作参数
 *
 * @author xc
 **/
public class OperateParam {
    /**
     * 服务id
     */
    @ApiModelProperty(value = "服务id")
    @NotNull(message = "服务id不能为空")
    private String svcId;
    /**
     * 操作类型
     */
    @ApiModelProperty(value = "操作类型")
    @NotNull(message = "操作类型不能为空")
    @EnumCheck(enumClass = OperateTypeEnum.class, message = "操作类型校验错误")
    private String operationType;
    @ApiModelProperty(value = "集群信息")
    private List<EngineClusterInfo> clusterInfos;
    @ApiModelProperty(value = "虚机信息")
    private List<VmModel> vms;

    /**
     * get
     *
     * @return ClusterInfos
     */
    public List<EngineClusterInfo> getClusterInfos() {
        return clusterInfos;
    }

    /**
     * set
     *
     * @param clusterInfos clusterInfos
     */
    public void setClusterInfos(List<EngineClusterInfo> clusterInfos) {
        this.clusterInfos = clusterInfos;
    }

    /**
     * get
     *
     * @return Vms
     */
    public List<VmModel> getVms() {
        return vms;
    }

    /**
     * set
     *
     * @param vms vms
     */
    public void setVms(List<VmModel> vms) {
        this.vms = vms;
    }

    /**
     * get
     *
     * @return SvcId
     */
    public String getSvcId() {
        return svcId;
    }

    /**
     * set
     *
     * @param svcId svcId
     */
    public void setSvcId(String svcId) {
        this.svcId = svcId;
    }

    /**
     * get
     *
     * @return OperationType
     */
    public String getOperationType() {
        return operationType;
    }

    /**
     * set
     *
     * @param operationType operationType
     */
    public void setOperationType(String operationType) {
        this.operationType = operationType;
    }

    @Override
    public String toString() {
        return "OperateParam{" +
                "svcId='" + svcId + '\'' +
                ", operateType='" + operationType + '\'' +
                '}';
    }
}
